package com.example.springboottestgit.controller.main;

import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.example.springboottestgit.bean.vo.InputVO;
import com.example.springboottestgit.bean.vo.OutputVO;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * @description:
 * @author: ZZZ
 * @time: 2024/3/22 23:06
 */
public class Validate {
    public static void main(String[] args) throws IOException {
//        System.out.println("fsdfsd".indexOf("，"));
//        System.out.println("fsd5%f".replaceAll("\\.\\d+%","%"));
//        System.out.println("fsd55%f".replaceAll("\\.\\d+%","%"));
//        System.out.println("fsd55.1%f".replaceAll("\\.\\d+%","%"));
//        System.out.println("fsd55.0%f".replaceAll("\\.\\d+%","%"));
//        System.out.println("fsd55.01%f".replaceAll("\\.\\d+%","%"));
//        System.out.println("fsd55.99%f".replaceAll("\\.\\d+%","%"));
//        System.out.println("fsd10%f".replaceAll("\\.\\d+%","%"));
//        System.out.println("fsdf".replaceAll("\\.\\d+%","%"));

        stage();
        //test();

    }

    public static void stage() throws IOException {
        int n = 0;
        String path = "D:/file/test.txt";
        List<KY> list = getTestQuestion(path);
        for (KY ky : list) {
            String text = askLawQuestion(ky.getQuestion());

            /*if(ky.getResult().length()==3){
                if(!text.contains(ky.getResult())){
                    System.out.println(ky.getQuestion());
                    System.out.println(text);
                    System.out.println("===================================");
                }
            }else{
                if(text.contains("不"+ky.getResult())){
                    System.out.println(ky.getQuestion());
                    System.out.println(text);
                    System.out.println("===================================");
                }
            }*/

            //llama
            if (!text.startsWith(ky.getResult())) {
                System.out.println(ky.getQuestion());
                System.out.println(text);
                System.out.println("===================================");
            }
            n++;
            if (n % 20 == 0) {
                System.out.println(n);
            }
        }
    }


    public static void test() {
//        int n=1;
//        System.out.println("String s"+n+"=\""+question+"\";");
//        n++;

        //  s8 s10

        String s1="追加采购金额不得超过原合同采购金额的10%是否符合法律法规";
        String s2="合同签订时限为自中标通知书发出之日起31个日历日内是否符合法律法规";
        String s3="投标有效期为投标截止时间起21个日历日是否符合法律法规";
        String s4="招标公告的公告期限设定为最先发布公告之日起6个工作日是否符合法律法规";
        String s5="招标文件质疑时效期应在依法获取招标文件之日起8个工作日是否符合法律法规";
        String s6="未中标人的投标保证金将在中标通知书发出之日起6个工作日内退回原账户是否符合法律法规";
        String s7="中标人的投标保证金将在政府采购合同签订之日起6个工作日内退回原账户是否符合法律法规";
        String s8="在投标截止时间前撤回已提交的电子投标文件的投标人，其投标保证金将在中招国际招标有限公司收到投标人书面撤回通知之日起6个工作日内退回原账户是否符合法律法规";
        //String s9="澄清或修改的内容可能影响电子投标文件编制的，中招国际招标有限公司将在投标截止时间至少14个日历日前，在招标文件载明的指定媒体以更正公告的形式发布澄清或修改的内容，不足14个日历日的，中招国际招标有限公司将顺延投标截止时间及开标时间，中招国际招标有限公司和投标人受原投标截止时间及开标时间制约的所有权利和义务均延长至新的投标截止时间及开标时间，这句话是否符合法律法规";
        //String s10="中标人确定之日起3个工作日内，中招国际招标有限公司将在招标文件载明的指定媒体以中标公告的形式发布中标结果是否符合法律法规";
        //String s11="安置的残疾人占本单位在职职工人数的比例不低于26%是否符合法律法规";
        //String s12="中标或者成交供应商缴纳本采购包履约保证金为合同金额的12%是否符合法律法规";
        String s13="单位授权书是否可以作为投标人的资格及资信证明文件";
        String s14="营业执照等证明文件是否可以作为投标人的资格及资信证明文件";
        String s15="提供财务状况报告(财务报告、或资信证明）是否可以作为投标人的资格及资信证明文件";

        for (int i = 1; i <= 50; i++) {
        //for (int i = 80; i <= 120; i++) {
            String question=s8.replaceAll("\\d+",i+"");
            String text = askLawQuestion(question);
            System.out.println(question);
            System.out.println(text);
            System.out.println();
        }

    }


    public static List<KY> getTestQuestion(String path) throws IOException {
        List<KY> list = new ArrayList<>();
        FileReader reader = new FileReader(path);
        BufferedReader bufferedReader = new BufferedReader(reader);
        StringBuilder stringBuilder = new StringBuilder();
        String line;

        while ((line = bufferedReader.readLine()) != null) {
            //stringBuilder.append(line);
            String[] split = line.split("#");
            KY ky = new KY(split[0].trim(), split[1].trim());
            list.add(ky);
        }
        bufferedReader.close();
        return list;
    }

    public static String askLawQuestion(String question) {
        String url = "http://192.168.80.35:19327/v1/completions";
        //String url = "http://192.168.80.35:8092/qwen2/api";
        InputVO inputVO = new InputVO();
        inputVO.setPrompt(question);
        String param = JSONObject.toJSONString(inputVO);
        String result = HttpUtil.createPost(url)
                //这个请求头.header是自己项目需要加的，可以省略
                .header("Content-Type", "application/json")
                //这两个请求头是项目需要加的，可以省略
                //传输参数
                .body(param).execute().body();
        OutputVO out = JSONObject.parseObject(result, OutputVO.class);
        String text = out.getChoices().get(0).getText();
        return text;
    }
}

class KY {
    private String question;
    private String result;

    public KY(String question, String result) {
        this.question = question;
        this.result = result;
    }

    public String getQuestion() {
        return question;
    }

    public void setQuestion(String question) {
        this.question = question;
    }

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }
}
